package file;



/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 25397
 * Date: 2022-04-12
 * Time: 13:56
 */
import java.io.*;
import java.util.Scanner;
public class Demo13 {
    public static void main(String[] args) {
        //1.输入两个路径
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入要拷贝的路径：");
        String src=scanner.nextLine();
        System.out.println("请输入要拷贝的路径：");
        String dest=scanner.nextLine();
        File srcFile=new File(src);
        if(!srcFile.isFile()){
            System.out.println("输入的源路径不正确");
            return;
        }
        //此处不太需要检查目标文件是否存在，OutputStream写文件时可以自动创建不存在的文件
        //2.读取源文件内容，拷贝到目标文件中
        try(InputStream inputStream=new FileInputStream(src)){
            try(OutputStream outputStream=new FileOutputStream(dest)){
                //把inputStream的内容读出来，再写入到outputstream
                byte[] buffer=new byte[1024];
                while(true){
                    int len=inputStream.read(buffer);
                    if(len==-1){
                        //读取完
                        break;
                    }
                    //写入的时候，不能把整个buffer都写进去，buffer可能是只有一部分有效
                    //（比如一个文件只有24字节，但是buffer是1024，你只需要读24个字节即可）
                    outputStream.write(buffer,0,len);
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
